Dynamic identification of other viewers of a television program to an online viewer

ABSTRACT

Informing a viewer of a television program of the identity of other online identities that represent users concurrently viewing that same television program includes determining dynamically a first television program to which a television viewing device associated with a viewer is tuned and identifying one or more other viewers associated with television viewing devices that are presently tuned to the first television program. Trait information related to the viewer or to the other viewers is stored in a data store related to the first television program. A subset of the other viewers that have similar traits is determined based on the stored trait information. The viewer is graphically informed of the subset of other viewers.

TECHNICAL FIELD

This invention relates to identification of online viewers watching atelevision program.

BACKGROUND

Online users of the Internet have virtually on-demand access toinformation such as news, weather, financials, sports, and entertainmentas well as the ability to generate electronic messages and toparticipate in online discussion groups. Many online users may accesssimultaneously the same or similar online locations and may desireinformation regarding other individuals accessing those locations. Thewealth of available online locations, the large quantity of users whomay access the online locations, and the wealth of informationassociated with the users may impede an online service provider'sability to provide the desired information.

SUMMARY

In one general aspect, informing a viewer of a television program of theidentity of other online identities that represent users concurrentlyviewing that same television program includes determining dynamically afirst television program to which a television viewing device associatedwith a viewer is tuned and identifying one or more other viewersassociated with television viewing devices that are presently tuned tothe first television program. Trait information related to the viewer orto the other viewers is stored in a data store related to the firsttelevision program. A subset of the other viewers that have similartraits is determined based on the stored trait information. The vieweris graphically informed of the subset of other viewers.

Implementations may include one or more of the following features. Forexample, determining a first television program may include determininga channel or television network to which the television viewing deviceassociated with the viewer is tuned. Determining the first televisionprogram may include inferring the first television program based on thetelevision network. A perceivable indicator related to the televisionnetwork may be displayed.

Identifying other viewers associated with television viewing devicesthat are tuned to the first television program may include dynamicallyidentifying other viewers associated with a television viewing devicethat was previously tuned to a second television program and then wastuned to the first television program. A perceivable indicator relatedto the second television program may be displayed.

Informing a viewer of a television program of the identity of otheronline identities that represent users concurrently viewing that sametelevision program may further include identifying one or more recentviewers associated with television viewing devices that were tuned tothe first television program and then were subsequently tuned to asecond television program. Trait information related to the recentviewers is stored in the data store related to the first televisionprogram. A subset of the recent viewers that have similar traits basedon the stored trait information is determined. The viewer is graphicallyinformed dynamically of the subset of recent viewers. The viewer may begraphically informed of the second television program presently viewedby at least one of the recent viewers.

The trait information may include information related to an age ordemographic identifier of the viewer or of an other viewer. Determininga subset of the other viewers may include dynamically determining asubset of the other viewers having an age or demographic identifiersimilar to an age of the viewer.

The trait information may include information related to an expertiserating, an interest, or a participation status of the viewer or of another viewer. The participation status may include a visibilitypreference of the viewer or of the other viewer.

The trait information may include information of an individual selectedas an associate by the viewer or by an other viewer. The individual maybe a member of the buddy list or contact list of the viewer or of theother viewer.

The trait information may include information related to an onlinestatus of the viewer or of the other viewer. The online status mayinclude a status of active, idle, away, and/or mobile.

Informing a viewer of a television program of the identity of otheronline identities that represent users concurrently viewing that sametelevision program may further include storing other information relatedto the viewer or to the other viewers in the data store related to thefirst television program and graphically informing the viewerdynamically of the subset of other viewers based on the stored otherinformation. The other information may include information indicative ofan identification of the viewer or of an other viewer. The informationindicative of an identification may include an online identifierassociated with the viewer or with the other viewer. The otherinformation may include contact information of the viewer or of an otherviewer or information based on an activity level associated with thefirst television program. The activity level corresponds to the numberof viewers tuned to the first television program.

Determining a subset of the other viewers may include determining asubset of the other viewers based on a demographic identifier of theother viewers. Determining a subset of the other viewers may includedetermining a subset of the other viewers based on a similar age of theviewer and of the other viewers.

Graphically informing the viewer dynamically of the subset of otherviewers may include informing the viewer of a total number of otherviewers, informing the viewer of at least one of the other viewers, orinforming the viewer of a trait of at least one of the other viewers.The trait may include an interest of at least one of the other viewers,an interest of an individual selected as an associate by the otherviewer, or an expertise of at least one of the other viewers.

Graphically informing the viewer dynamically of the subset of otherviewers may include displaying to the viewer information indicative ofan other viewer based on the stored trait information. A trait of theother viewer may be indicated graphically. The trait may be an interestor an expertise of the other viewer. The identity of the other viewermay be indicated graphically.

Graphically informing the viewer of the subset of other viewers mayinclude providing a user interface that graphically informs the viewerof the subset of other viewers. The user interface may be manipulated bythe viewer to communicate with at least one other viewer in the subsetof other viewers. The user interface may be manipulated by the viewer toinvoke an instant message or send an e-mail to at least one other viewerin the subset of other viewers. The user interface may be manipulated bythe viewer to contact directly at least one other viewer in the subsetof other viewers using a voice communication. The voice communicationmay employ a mobile device. The user interface may be manipulated by theviewer to store contact information of at least one other viewer in thesubset of other viewers to a contact list of the viewer. The contactlist of the viewer may be a buddy list.

Graphically informing the viewer dynamically of the subset of otherviewers may include informing the viewer in the subset of other viewerssorted according to trait information of the viewer. The traitinformation may include preference information of the viewer.Graphically informing the viewer dynamically of the subset of otherviewers may include providing updated information based on a viewer orsystem designated interval or providing updated information about every15 or 60 seconds.

Determining a subset of the other viewers may include determining asubset of the other viewers by selecting other viewers associated withtrait information of the viewer. The stored trait information mayinclude information indicative of a location related to the viewer.

Informing a viewer of a television program of the identity of otheronline identities that represent users concurrently viewing that sametelevision program may further include detecting dynamically thetelevision viewing device of the viewer tuning to a second televisionprogram and identifying one or more second television program viewersassociated with viewing devices that are tuned to the second televisionprogram. Second trait information is stored related to the secondtelevision program viewers in a second television program data store. Asubset of second television program viewers that have similar traitsbased on the stored second trait information is determined. The vieweris graphically and dynamically informed of the subset of secondtelevision program viewers.

In another general aspect, a user interface that informs dynamically aviewer of a television program of the identity of other onlineidentities that represent users concurrently viewing the same televisionprogram includes a first interface element structured and arranged todisplay a television program to which a viewing device associated with aviewer is tuned. The user interface also includes a second interfaceelement structured and arranged to graphically inform the viewerdynamically of a subset of other viewers associated with televisionviewing devices that are presently tuned to the television program andthat have similar traits.

Implementations may include one or more of the following features. Forexample, the second interface element may be structured and arranged tographically inform the viewer dynamically of the subset by displaying aperceivable indicator corresponding to an identity of at least one otherviewer. The second interface element may be manipulated by the viewer tocommunicate with at least one other viewer in the subset of otherviewers.

Communications may include invoking an instant message or sending ane-mail to at least one other viewer in the subset of other viewers. Thesecond interface element may be manipulated by the viewer to contactdirectly at least one other viewer in the subset of other viewers usinga voice communication or to participate in the television program. Thesecond interface element may be manipulated by the viewer to submit avote related to the television program.

The second interface element may be structured and arranged tographically inform the viewer of a trait of at least one other viewer.The trait may comprise an interest or an expertise of at least one otherviewer.

DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic diagram of a system for dynamically identifyingother users to an online user.

FIG. 2 is a flow diagram of a process implementable by the system ofFIG. 1.

FIG. 3 is a schematic diagram of a user identification system.

FIG. 4 is a schematic diagram of a WhoIsHere service that may be used toimplement the user identification system of FIG. 3.

FIG. 5 is a schematic diagram of a support service that may be used toimplement the user identification system of FIG. 3.

FIG. 6 illustrates an exemplary window that may be used by the system ofFIG. 3 to identify other users to an online user.

FIG. 7 is a flow diagram illustrating an exemplary process implementableby the user identification system of FIG. 3.

FIGS. 8-10 are transaction diagrams illustrating additional exemplaryprocesses implementable by the user identification system of FIG. 3.

FIG. 11 is a schematic diagram of a system for dynamically identifyingother viewers of a television program to an online viewer.

FIG. 12 illustrates an exemplary window that may be used by the systemof FIG. 11 to identify other viewers to an online viewer.

FIG. 13 is a transaction diagram illustrating an exemplary processimplementable by the user identification system of FIG. 11.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

An online service provider may display dynamically and in real timeinformation of other users presently viewing the television program (orchannel) as being viewed by the user. For instance, the user mayperceive when buddy list members view a television program concurrentlywith the user, or may perceive a subset of other users who view atelevision program concurrently with the user and have a shared traitwith the user (e.g., male over 35), or combination of connectivitycriteria and trait matching information may be used to identify otherswho concurrently perceive common television programs. The user mayperceive other users based on a trait of the other users and/or based ona trait of the user.

Referring briefly to FIG. 6, a graphical user interface (GUI) 600displays dynamically and in real time a list of other users presentlyaccessing the same online NFL sports channel as the user. The GUIindicates numerical counts of the number of other users accessing thechannel. The GUI may display and order the list of users based ontraits, such as, for example, expertise, age and/or gender. The GUI alsomay be configured to rank and order the other users based on expertise.In any event, the GUI 1000 will update dynamically as the user navigatesto other sites on the, presenting to the user in real-time the otherusers accessing those sites concurrently with the user.

FIG. 1 shows a generalized system 100 used to identify dynamically to anonline user 105 other individuals 110 within an online context 115 ofthe user 105. The system 100 identifies the other individuals 110 to theuser 105 using a dynamic user identification system 120. The dynamicuser identification system 120 is configured to be scalable and includesa context determination service 125, an identification service 130, aninformation storage service 135, and an informing service 140.

The context determination service 125 may be configured to determine theonline context 115 of the user 105, and to communicate informationindicative of the online context 115. The online context 115 may bebased upon an online presence of the user 105, such as, for example, apresence of the user 105 at a particular URL (uniform resource locator),chat-room, message board, or newsgroup. The online context 115 also maybe based upon a focus of the user 105 upon a particular web page orportion of a web page at which the user 105 is present. To facilitatethe determination of the online context 115, various online locationsand/or information sources may be aggregated, for example, by hierarchyor topic, and may be designated accordingly.

The identification service 130 may be configured to identify otherindividuals 110 present within the online context 115 of the user 105.The identification service 130 may include mechanisms to log entrywithin and exit from the online context 115 of the other individuals110. The identification service 130 may employ one or more protocols totransfer information internally or to communicate with other componentsof the dynamic user identification system 120.

The information storage service 135 stores information (e.g., traitinformation, identification information, and/or contact information)indicative of the user and/or of the other individuals 110 identified aswithin the online context 115 of the user 105. For example, theinformation storage service 135 may store, in relation to the onlinecontext 115, information indicative of an other individual 110 indicatedby the identification service 130 to have entered within the onlinecontext 115. Similarly, the information storage service 135 may removefrom storage the information indicative of the individual 110 when theidentification service 130 indicates that the other individual 110 hasleft the online context 115. Storing trait or other information ofessentially only individuals presently within the online context 115 mayimprove scalability of the system 100.

The trait information of the other individuals 110 may include, forexample, information indicative of an age, gender, nationality, race,disability and/or other demographic identifier of the individual, and/orinformation indicative of an expertise, interest, preference, education,profession, avocation, user type and/or other quality of the otherindividual 110. In the primary implementation described herein, thetrait information does not include “heavy” items such as the extensiveinformation associated with a history of the online activity orcorrespondence of the other individual 110. While “heavy” items may bestored and communicated as other information in a manner similar to thatdescribed for trait information, heavy information items aredistinguished from trait information for purposes of this description tobetter explain one possible implementation in which the system 120 isnot burdened and scalability is not impeded. Hence, the traitinformation is merely a subset of all other available information. Theinformation storage service 135 may store the trait information, theidentification information and/or the contact information or may store areference used to access the information.

The informing service 140 uses the trait, identification, or contactinformation of the information storage service 135 to inform the user105 of at least one of the other individuals 110 within the onlinecontext 115. The informing service 140 may be configured to identify theother individuals 110 to the user 105 in association with the onlinecontext 115. For example, the other individuals 110 may be identified ina pop-up window associated with a web page upon which the user 105 isfocused. To provide a more focused and relevant disclosure, theinforming service 140 may identify the other individuals 110 to the user105 based on a common age grouping or other common demographicidentifier. For example, the informing service 140 may inform a user 105between the ages of 25 and 32 of other individuals 110 within the onlinecontext 115 who also are between the ages of 25 and 32 years.

The informing service 140 also may provide the user 105 with traitinformation indicating interests or characteristics of the otherindividuals 110, and may enable the user 105 easily to communicate withone or more of the other individuals 110 based on the identification andcontact information. The informing service 140 may enable the user 105to modify the presentation of information related to the otherindividuals 110 (e.g., to determine ordering of the information), toobtain related follow-on information, and/or to select or filterinformation based on various criteria (e.g., based on a postal code or atelephone area code).

The elements of system 100 (the system elements) may include additionalmechanisms for delivering or processing data. The mechanisms mayinclude, for example, any applications, protocols, devices, or networksused to facilitate communication or processing of electronic data. Thesystem elements also may include or be included in a general-purpose ora special-purpose computer, a database, a local area network (LAN),and/or a wide area network (WAN). The response to and execution ofinstructions received by the system elements may be controlled by, forexample, a program, a piece of code, an instruction, a device, acomputer system, or a combination thereof, for independently orcollectively instructing the system elements to interact and operate asdescribed.

FIG. 2 illustrates a flow diagram of a process 200 implementable bysystem 100 of FIG. 1 to identify dynamically to the online user 105 atleast one of the other individuals 110 within the online context 110.The context determination service 125 determines the online context 115of the user 105 (step 205). To this end, the context determinationservice 125 may monitor the online activity of the user 105 and maydetermine the online context 115 based, for example, on a web page orportion of a web page presently visited and/or focused upon by the user105.

The identification service 130 identifies one or more other individuals110 within the online context 115 of the user 105 (step 210). Forexample, the identification service 130 may track the entry into andexit from the online context 115 of individuals to determine the otherindividuals 110 presently within the context 115.

The information storage service 135 stores trait information,identification information and/or contact information relatedessentially only to the other individuals 110 in a context store, suchas, for example, a database record associated with the online context115 (step 215).

Finally, the informing service 140 informs the user 105 dynamically ofat least one of the other individuals 110 based on the stored trait,identification and/or contact information of the identification service130 (step 220). The informing service 140 may inform the user 105 of theother individuals 110 using, for example, a pop-up window, a list, agraph, or any other appropriate mechanism. The informing service 140 mayinform the user 105 of the other individuals 110 in a fashion associatedwith the online context 115 of the user 105 and may enable the user 105to interact online with at least one of the other individuals 110 basedon information of the information storage service 135.

Referring to FIG. 3, a generalized system 300 is illustrated that uses adynamic user identification system 320 having a WhoIsHere service 330 toidentify dynamically to the user 105 at a client service 305 at leastone other individual 110 also within an online context 315 of a largescale network 317. Exemplary components of the notification system 300are described in greater detail below.

The client service 305 may be configured to provide the user 105 withonline access to the network 317 and may include a context window 307associated with the online context 315 and a WhoIsHere window 309associated with the WhoIsHere service 330. More generally, the clientservice 305 may include any device, system, and/or piece of code thatrelies on another service to perform an operation. For example, theclient service 305 may include a device such as a notebook computer, atelephone, a pen-enabled computer, a personal digital assistant (PDA) ormobile telephone, and/or a desktop computer. The client service 305 alsomay include a Web browser, an email client, a synchronization client(e.g., a calendar synchronization client, or a task list synchronizationclient), an instant messaging (IM) client, a business productivityapplication (e.g., a word processor or a spreadsheet program), and/or anoperating system or operating system kernel residing on a device. Theclient service 305 may be arranged to operate within or in concert withone or more other systems, such as, for example, one or more LANs and/orone or more WANs.

The client service 305 may receive and present information to the user105 using a standard protocol, such as, for example, the standardgeneralized markup language (SGML), the exxtensible markup language(XML), the hypertext markup language (HTML), the extensible hypertextmarkup language (XHTML), the compact hypertext markup language (cHTML),the virtual reality markup language (VRML), the wireless markup language(WML), the voice extensible markup language (VXML), the short messageservice (SMS), a document object model (DOM), the simple object accessprotocol (SOAP), or the dynamic hypertext markup language (DHTML). Theclient service 305 may present the information to the user 105 in amanner that enables the user 105 to respond to, or to interact with, thepresented information.

The large scale network 317 typically allows direct or indirectcommunication between the client service 305 and the dynamic useridentification system 320, irrespective of physical or logicalseparation. Although not shown in FIG. 3, the large scale network 317also may allow direct or indirect communication between the clientservice 305, the other individuals 110, and/or the support service 350.The large scale network 317 may access or include various sources ofinformation, such as, for example, third party information or services,email, a discussion group, a chat room, a news service, a brokerservice, a banking service, a shopping service, a weather service, theWorld Wide Web, or other Internet information sources.

The large scale network 317 may employ one or more protocols (i.e.,standards, formats, conventions, rules, and structures) to transferinformation internally or deliver information to one or more users. Theprotocols may include, for example, the Internet protocol (IP), thetransfer connection protocol (TCP), the hypertext transfer protocol(HTTP), the file transfer protocol (FTP), the user datagram protocol(UDP), the layer two tunneling protocol (L2TP) and/or the simple mailtransfer protocol (SMTP). The large scale network 317 may include, forexample, the Internet, the World Wide Web, a WAN, a LAN, analog ordigital wired and wireless telephone networks (e.g., PSTN, ISDN, orxDSL), radio, television, cable, satellite, and/or any other deliverymechanism for carrying data. The network 317 may be secured orunsecured, public or private.

The online context 315 may be defined by context definition informationof the WhoIsHere service 330 and/or by meta data of the online context315 that itself defines in whole or in part a scope of the context 315.The WhoIsHere service 330 may include or may access context definitioninformation that may define an online context based on a hierarchicalrelationship of online locations and/or user relationships. For example,the context definition information may indicate that the scope of theonline context 315 includes an online news site and web pageshierarchically associated with that site, or that the scope of theonline context 315 includes a television channel and programmingassociated with that channel. The context definition information alsomay indicate that the scope of the online context 315 is limitedaccording to a language or a geographic access region. For example, thescope of the online context 315 may be limited to include only Englishversion pages of a web site and to exclude individuals accessing thewebsite from outside of a predetermined geographic region (e.g., outsideof the metropolitan area of the user's residence). In addition, or inthe alternative, web pages of the online news site may include a labelor tag indicating that they are within the same online context.

The dynamic user identification system 320 may be configured to indicatethe number of other individuals 110 within the online context 315 basedon trait information (e.g., a participation preference, a common age,and/or a similar demographic identifier) of the user 105 and of theother individuals 110. The dynamic user identification system 320 mayidentify the online context 315 automatically based upon an intelligentprocess that correlates derived parameters (e.g., location, languageand/or subject matter) of a URL to a related context definition. Thedynamic user identification system 320 also may identify the onlinecontext 315 based, for example, on a meta tag embedded of the onlinecontext 315 that defines the online context 315. The dynamic useridentification system 320 also may be configured to show onlineidentifiers (e.g., screen names) of other individuals 110 within thecontext 315, and may present the online identifiers sorted according tocommonality of interest with the user 105.

The user 105 and the other individuals 110 (collectively the users) eachmay specify certain trait information, such as, for example,participation preferences, to be used by the dynamic user identificationsystem 320. For example, the users may choose to opt-in or opt-out ofparticipation, and may be allowed to do so dynamically during an onlinesession. When opted-in, users may see and be seen using the dynamic useridentification system 320. Users also may specify to opt-in or toopt-out of participation on a context-by-context basis, according tocategories of contexts, and/or based on trait information, such as, forexample, an age or other demographic identifier. For example, users mayopt-in or opt-out of some or all: 1) message boards, 2) web sites,and/or 3) chat rooms. Similarly, users may opt-in or opt-out withrespect to other individual users and/or with respect to an age or otherdemographic identifier. For example, a user may opt-in with respect toone or more individuals with whom the user wishes to share presenceinformation, or may opt-out with respect to a list of individuals bywhom the user does not wish to be seen. Nevertheless, even whenopted-out, a user's un-named presence within a context still contributestoward the aggregate count of individuals within that context.Additionally, certain classes of users automatically may be opted-outbased on trait information, such as, for example, users classified as“Kids,” or users classified as “Young Teens,” or “Mature Teens” for whoma parental control setting indicates that participation is notpermitted.

Subject to the participation preferences or other trait information, thedynamic user identification system 320 may enable the user 105 tointeract online with one or more of the other individuals 110 within theonline context 315, for example, by adding the other individual 110 to acontact list (e.g., a buddy list), or by using instant messaging oremail. The dynamic user identification system 320 also may enable theuser 105 to interact with one or more of the other individuals 110 usinga voice communication provided, for example, using a wireless mobiledevice. The dynamic user identification system 320 may allow the user105 to view a profile of the other individual 110 so that the user 105may determine further the desirability of communicating with the otherindividual 110.

In one implementation, the dynamic user identification system 320 maywork to identify the viewers of a television program. While the user 105views the television program, the dynamic user identification system 320may identify to the user 105 other viewers 110 presently viewing thesame program and who also are included in a contact list (e.g., a buddylist) of the user 105 and/or who have similar or complementary traitinformation. The dynamic user identification system 320 may enable theuser 105 to interact during the television program with one or more ofthe other individuals 110, using, for example, instant messaging and/orany other appropriate form of electronic messaging. The ability tointeract dynamically and in real time with other viewers of a televisionprogram may significantly enhance the real and perceived value oftelevision programming by aiding viewers to build communities of otherindividuals having common interests.

Moreover, certain television programming lends itself to viewerinteraction, such as, for example, performance or reality basedprogramming. In reality based programming the viewers generally selectfavorite participants, and may be enabled to participate in the programby voting. The interactivity provided by the dynamic user identificationsystem 320 enables viewers of reality based programs to interact witheach other regarding their favorite or most disliked reality programparticipants, or to organize voting blocks or other activities tofurther invest the viewers' role in and contribution to the realityprogram.

Based on the trait information, the dynamic user identification system320 may distinguish visually user-rated experts whose expertise isrelevant, for example, to the online context 315, or an interest of theuser 105. For example, in a financial context, the dynamic useridentification system 320 may distinguish visually an individual who isa financial expert; if the online context 315 relates to health, thedynamic user identification system 320 may distinguish as experts onlythose individuals having a health related expertise. In like manner, thedynamic user identification system 320 may distinguish visually otherindividuals based on other trait information, such as, for example, ageor another demographic identifier. The dynamic user identificationsystem 320 generally may include any device, system, and/or piece ofcode configured to perform an operation related to activity associatedwith the network 317 or requested by the client service 305.

The dynamic user identification system 320 includes a front-end 321 anda back-end 323. The front-end 321 and the back-end 323 may or may not beincorporated within the same hardware or software device, depending, forexample, on an anticipated workload of the dynamic user identificationsystem 320. Structuring the dynamic user identification system 320 toinclude front-end 321 and back-end 323 portions may improve the abilityof the dynamic user identification system 320 to serve the many users ofa large scale network such as the Internet. In other words, thefront-end/back-end structure may improve the scalability of the dynamicuser identification system 320.

Referring more specifically to the front-end 321, the front end mayinclude one or more interface services 325. The interface services 325may communicate online activity of the user 105 or of the otherindividuals 110 to one or more WhoIsHere services 330 or supportservices 350 of the back-end 323. The interface services 325 also maycommunicate service requests from the client service 305 to the back-end323 and communicate information to the client 305 informing of one ormore of the other individuals 110.

The interface services 325 of the front-end 321 communicate between theclient services 305 and the WhoIsHere services 330. The interfaceservices 325, for example, communicate information to the WhoIsHereservices 330 identifying the online context 315 of the user 105. Theinterface services 325 may communicate to the WhoIsHere services 330information based upon a current online location or online activity ofthe user 105. For example, the interface services 325 may communicate acontext identifier (e.g., a meta tag) embedded in an information itemaccessed by the user 105. The interface services 325 also communicate tothe user 105 information informing of the other individuals 110 asdetermined by the WhoIsHere services 330. The interface services 325 mayinclude a print service, a file access service, an IM service, anoperating system, an operating system kernel, an authentication service,an authorization service, and/or any combination of these or otherservices.

In an alternative implementation, the interface services 325 may beincluded in whole or in part as a component of the client service 305.

The back-end 323 includes one or more WhoIsHere services 330 thatdetermine the other individuals 110 presently within the online context315 and are configured to inform the user 105 of at least one of theother individuals 110. One or more support services 350 are configured,for example, to communicate information to the WhoIsHere service 330indicative of online activity and/or preferences of the otherindividuals 110. The WhoIsHere services 330 and the support services 350each are described in greater detail below.

The WhoIsHere services 330 communicate trait, identification and/orcontact information of the other individuals 110 to the interfaceservices 325 for suggestion to the user 105 through the client service305. The WhoIsHere services 330 determine the other individuals withinthe online context 315 and inform the user 105 of at least one of theother individuals 110. The WhoIsHere services 330 may be configured toreceive information indicating the current online context of the user105 from the interface services 325.

The WhoIsHere services 330 may communicate to the interface services 325a WhoIsHere list of other individuals 110 within the online context ofthe user 105. The WhoIsHere services 330 may communicate the WhoIsHerelist to the interface services 325 automatically after a change in theonline context of the user 105 and also at any time that the WhoIsHerelist changes. The WhoIsHere services 330 also may communicate theWhoIsHere list to the interface services 325 at short periodicintervals, such as, for example, every 30 or 60 seconds. Alternativelyor in addition, the WhoIsHere services 330 may communicate the WhoIsHerelist to the interface services 325 in response to a request of theinterface services 325. The interface services 325 may be configured torequest from the WhoIsHere services 330 an updated WhoIsHere list at setperiodic intervals or upon a change in the online context of the user105.

The WhoIsHere services 330, alone or in conjunction with other services,may perform sorting, prioritizing, or other types of organizationalprocessing on the trait, identification and/or contact informationunderlying the WhoIsHere list so that the WhoIsHere list is provided ina desired fashion. Typically, the WhoIsHere services 330 will include asoftware program or a piece of code to cause the WhoIsHere services 330to operate as described above.

The support services 350 are configured, for example, to communicatewith the WhoIsHere service 330 and to provide the WhoIsHere service withinformation related to the other individuals 110. The network 317includes one or more online contexts. In general, the support services350 determine dynamically the online contexts and online locations thateach of the other individuals 110 access (e.g., by opening a Web page ofthe network 317), and/or upon which they focus (e.g., by clicking on anopen Web page or a portion thereof). To make this determination, thesupport services 350 may monitor dynamically the online activities ofthe other individuals 110 and/or may communicate with client services ofthe other individuals 110 to obtain relevant activity information. Thesupport services 350 also may determine trait information (e.g.,information of an interest, a preference, or an expertise),identification information and/or contact information of each of theother individuals 110. The support service 350 may determine thisinformation by communicating with the other individuals 110, throughonline activity of the other individuals 110, and/or through the use ofuser profiles describing the other individuals 110.

Having determined information related to online activity of one or moreof the other individuals 110, the support services 350 may communicatethat information to the WhoIsHere services 330. The WhoIsHere services330 include records representative of various online contexts of thenetwork 317. The WhoIsHere services 330 record information related toonline activity communicated by the support services 350 using therecords representative of the online contexts. For example, theWhoIsHere services 330 may include a record for online context A, andmay add to an internal list trait, identification and/or contactinformation of an individual who has accessed or focused upon a web pagewithin online context A. The WhoIsHere services 330 may remove theindividual from the internal list, for example, upon receipt ofinformation indicating that the individual has exited online context Aby closing the web page within context A or by logging out. Forindividuals who are opted-out or who are globally excluded, theWhoIsHere services 330 may store only anonymous presence information forcontribution to a total presence count of the online context 315.

Each of the client service 305, the network 317, and the dynamic useridentification system 320 may include further mechanisms for deliveringdata, such as, for example, the short message service (SMS), thewireless application protocol (WAP), the transport connection protocol(TCP), the Internet protocol (IP), the World Wide Web, one or more LANs,and/or one or more WANs. The client service 305, the network 317, andthe dynamic user identification system 320 also may include analog ordigital wired and wireless telephone networks, such as, for example,public switched telephone networks (PSTN), integrated services digitalnetworks (ISDN), various types of digital subscriber lines (xDSL),advance mobile telephone service (AMPS), global system for mobilecommunications (GSM), general packet radio service (GPRS), code divisionmultiple access (CDMA), radio, cable, satellite, and/or other deliverymechanisms for carrying data.

One or more other services may be included in the components of system300 and/or these components (hereinafter the system services) may beincluded as part of one or more other services. For example, the systemservices may include or be included in a general-purpose or aspecial-purpose computer (e.g., a personal computer, a PDA, or a devicespecifically programmed to perform certain tasks), a local area network,and/or a wide area network. In either case, the response to andexecution of instructions received by any or all of the system servicesmay be controlled by, for example, a program, a piece of code, aninstruction, a device, a computer system, or a combination thereof, forindependently or collectively instructing the services to interact andoperate as described herein.

FIG. 4 illustrates a dynamic user identification system 420 thatincludes a WhoIsHere service 430 implemented using one or more contexttransaction services 435 and one or more context database services 440.Each context database service 440 may be configured to communicate withevery context transaction service 435 and with every other contextdatabase service 440. The context transaction services 435 and thecontext database services 440 may or may not be incorporated within thesame hardware and/or software device, depending, for example, on ananticipated workload of the WhoIsHere service 430. Structuring theWhoIsHere service 430 to include a separable context transactionservices 435 and context database services 440 may improve thescalability of the WhoIsHere service 430.

The context transaction services 435 may determine informationindicative of online presence and may communicate that information withthe context database services 440. The context database services 440 maymaintain a list of individuals presently within the online context 315based on the information indicative of online presence communicated bythe context transaction services 435. In general, the informationindicative of online presence includes information, such as, forexample, an indication that a URL has been accessed by an individual ordeparted by an individual. The context transaction services 435 mayindicate presence information for only a first presence of an individualwho is multiply present within the online context 315. For example, ifan individual has open simultaneously three instances of the same webpage, the context transaction services 435 may indicate to the contextdatabase services 440 only one of those presences (e.g., the firstpresence). Alternatively, the context database services 440 may receiveindication of each presence and itself may filter out instances ofredundant presence.

The context transaction services 435 also may obtain from the supportservice 350 trait information related to an individual. The traitinformation may include preference and/or privacy information associatedwith the individual, such as, for example, information indicative of aparticipation status, an instant messaging (IM) visibility preference,an IM status (e.g., an active status, an idle time, an away status,and/or a mobile status), a user class (e.g., “Kids,” “Young Teen,”“Mature Teen,” or “General”), and/or a parental control (e.g., allowedor disallowed).

The trait information also may include information indicative of aninterest, expertise, age or other demographic identifier of theindividual. The trait information indicative of interest, expertise, orage may be associated with one or more categories. In one implementationsubject matter or demographic categories are used including, forexample, Autos, Careers and Work, Computing Center, Entertainment,Games, Health, House and Home, Internal, International, Kids Only, Live,Local, Men, Music, Network Programming, News, Parenting, PeopleConnection, Personal Finance, Relationships, Research and Learning,Rewards, Senior Living, Shopping, Sports, Teens, Travel, Welcome, What'sNew, Women, Workplace, and Miscellaneous. Categories also may be basedupon a relevant geography or a language. The categories may bepredetermined or they may be determined dynamically based on anintelligent process.

The online context 315 also may be associated with a category. Forexample, the online context 315 may include a corresponding categoryidentifier (e.g., a meta tag) embedded in a location of the onlinecontext 315. Alternatively, the context transaction services 435 maycategorize the online context 315 automatically based upon anintelligent process to correlate the online context 315 to a mostclosely matching category. The context transaction services 435 also maybe configured to generate dynamically one or more additional categoriesif already existing categories do not adequately describe one or moreonline contexts of importance. The context transaction services 435 maycoordinate categorization with the support services 350.

The context database services 440 may include a database, such as, forexample, a relational database, for storing or referencing trait,identification and/or contact information associated with theindividuals identified to be present within the online context 315. Thetrait information, for example, may include or be derived from anindividual profile, WhoIsHere participation information, and/orindividual location information.

The context database services 440 use the information indicative ofpresence communicated by the context transaction services 435 tomaintain a context record of individuals present within the onlinecontext 315. To improve scalability, the context database services 440may include in each context record essentially only information relatedto individuals presently within the online context associated with thecontext record.

In one implementation, the context database services 440 storeinformation within the context record indicative of an individual basedon a communication of the context transaction services 435 that theindividual has opened a web page within the online context 315.Similarly, the context database services 440 may remove from the contextrecord the information indicative of the individual 110 when the contexttransaction services 435 communicate that the individual 110 has closedthe web page within the online context 315.

The context database services 440 may indicate that certain individualslisted are excluded globally from WhoIsHere participation based oninformation communicated by the context transaction services 435. Forexample, an individual may be indicated as globally excluded based ontrait information indicating that the individual is not opted intoWhoIsHere, that the individual is categorized as a “Kid,” “Young Teen,”or a “Mature Teen” for whom a parental control prohibits participation.To prevent lurking (e.g., observing others without being observed), anindividual also may be indicated as globally excluded who, althoughopted into WhoIsHere, indicates a preference to remain invisible toother WhoIsHere participants.

The context database services 440 may communicate to the contexttransaction services 435 a list of individuals within the online context315. The context transaction services 435 may cache the list ofindividuals to reduce communication with the context database services440. The context database services 440 may compose the list from theinformation stored in the context record based on preference informationor other trait information of the requesting user 105. For example, theuser 105 may prefer that the list of individuals 110 present within thecontext 315 be sorted according to a relevant expertise or a commonalityof interest with the requesting user 105. The commonality of interestmay include a direct interest match between the user 105 and an otherindividual 110, or an indirect interest match between the user 105 andan individual selected as an associate by the other individual 110(e.g., by listing the individual to a contact list).

For individuals not indicated as globally excluded, the context databaseservices 440 may indicate in the list trait, identification and/orcontact information of those individuals. Otherwise, for an individualindicated as globally excluded, the context database services 440indicate the presence of that individual generically by incorporatingtheir presence only in a count of total users within the context 315. Tothe extent that a particular individual 110 has indicated a desire toexclude themselves from visibility to the user 105, that individual 110will not be identified on the list. In any event, the context databaseservices 440 may provide the list automatically to the contexttransaction services 435 at certain periods or in response to a requestof the context transaction services 435.

The online context 315 may experience periods of high use that may causea server of the context database services 440 or the context record ofthe context database services 440 to exceed a usage threshold value. Toredistribute the load in response to the exceeded usage threshold value,the context record of the context database services 440 may be migratedto another server of the context database services 440 that is lessbusy. Where the usage threshold value exceeded is associatedparticularly with the context record, the context record may be dividedbetween one or more servers of the context database services 440. Shouldthe activity associated with the divided context record fallsufficiently, the context record may be unified again upon a singleserver of the context database services 440. Migration, division, orunification of a context record may be performed automatically.Information indicative of any migration, division, or unification of thecontext record may be communicated to the context transaction services435.

FIG. 5 illustrates a dynamic user identification system 520 thatincludes a support service 550 implemented using a rating service 555,an interest service 560, a connection service 565, and a profile service570. The rating service 555 may be configured to determine and/oridentify a rated expertise of one or more individual users. The ratingservice 555 may determine and store expertise ratings for individualusers based on predetermined expertise categories, such as, for example,the subject matter categories previously described. The rating service555 may be configured to communicate an expertise rating of anindividual user based on a request of the WhoIsHere service 330.

The interest service 560 may be configured to record interestinformation of one or more individual users. The interest service 560also may be configured to communicate an interest message based on arequest of the WhoIsHere service 330. The interest message may includeinterest information of an individual user and interest information ofdesignated contacts (e.g., buddies) of the individual user.

The connection service 565 may be configured to provide or manage accessto the network 317 by one or more individual users. The connectionservice 565, for example, may be configured to manage user logins and/orIM access. The connection service may be configured to determine andprovide information indicative of a users online status or IM status,such as, for example, whether the user is active, idle, away, orlogged-out.

The profile service 570 may be configured to manage profile informationincluding trait, identification and/or contact information related toone or more individual users. The profile information may include, forexample, client addressing information, location information, age orother demographic information, WhoIsHere participation information,general visibility information, user status information, user classinformation, and/or communication preferences related to an individualuser. The profile information may be provided by an individual userand/or may be determined automatically, for example, based on onlineactivity of the individual user. The profile service 570 may beconfigured to update profile information based on informationcommunicated by the WhoIsHere service 330 and to communicate requestedprofile information to the WhoIsHere service 330.

The different services of the support services 550 also may access orinclude various sources of information, such as, for example, thirdparty information or services, email, a discussion group, a chat room, anews service, a broker service, a banking service, a shopping service, aweather service, the World Wide Web, or other Internet informationsources. The different services of the support service 550 may employone or more protocols (i.e., standards, formats, conventions, rules, andstructures) to transfer information internally or deliver information toone or more users. Protocols employed by the support service 550 mayinclude, the Internet protocol (IP), the transfer connection protocol(TCP), the hypertext transfer protocol (HTTP), the file transferprotocol (FTP), the user datagram protocol (UDP), the layer twotunneling protocol (L2TP) and/or the simple mail transfer protocol(SMTP).

Each of the various services of the support service 550 themselves mayinclude front-end and back-end services. For example, the services mayinclude a front-end interface service configured to interface withindividual users or with other services or devices. The services alsomay include back-end processing and/or database services configured tointeract and respond according to communications of the front-endservices.

FIG. 6 illustrates an exemplary WhoIsHere window 600 that may be used bythe system of FIG. 3 to identify one or more other individuals 110 tothe online user 105. The WhoIsHere window 600 indicates a Sports:NFLcontext 605 associated with the window 600. The window provides a totalcount (491) 610 of the other individuals 110 within the Sports:NFLcontext 605. The window 600 also indicates the number of individuals (2)615 within the Sports:NFL context 605 who are NFL experts, and thenumber of other individuals (112) 620 within the context 605 whoseinterests match a specified interest of the user 105.

A presentation selector 625 enables the user 105 to select a preferredpresentation of one or more of the other individuals 110. Thepresentation selector 625, for example, may enable the user 105 to showexperts first (as shown), to show interest matches first, or to list theother individuals 110 alphabetically.

The WhoIsHere window 600 also includes a display panel 630 used to showidentifiers of one or more of the other individuals 110. Onlineidentifiers for one or more of the individuals included in the totalcount 610 are displayed by the display panel 630. In this example, thetwo experts, InternetAnne and ChattingChuck, are displayed firstaccording to the user preference indicated by the presentation selector625. Starburst symbols in the leftmost column provide a graphicalindication of the expert status of InternetAnne and ChattingChuck. Inaddition to an online identifier, each displayed individual also has anassociated graphical icon that may, for example, communicate anidentity, interest or expertise of the user. Commonality of interest(e.g., an interest match) between the user 105 and a displayedindividual 110 is indicated visually by highlighting the row or onlineidentifier of the matching individual. For example, the highlighted rowsof InternetAnne and SurfingDiane indicate an interest match for each.Although not shown, color may be used to provide additional indicationof expertise and/or commonality of interest, age or other demographicidentifier.

The WhoIsHere window 600 may enable the user 105 to open an IM or emailto an other individual who is displayed by clicking on the displayedidentifier of that other individual. For example, the user 105 mayinitiate an IM to SurfingSally by clicking on that individual's onlineidentifier. Alternatively, the user 105 may select SurfingSally and mayclick on the Buddy Info button 635 to view buddy information related toSurfingSally.

The WhoIsHere window 600 also includes a check-box 640 allowing the user105 easily to opt-in or opt-out of WhoIsHere. As illustrated, the user105 has opted into WhoIsHere by checking the check-box 640 to allow theuser 105 to see and be seen.

FIG. 7 illustrates a method 700 implementable by the dynamic useridentification system of FIG. 3. The method 700 includes back-end stepsused to determine other individuals within an online context of the userto be identified to the user, and front-end steps used to identify theother individuals to the user based on the online context of the user.The back-end and front-end steps may be performed asynchronously and/orconcurrently to each other.

Referring to the back-end steps, online activity of other individuals ismonitored (step 705). If an entry event (e.g. an open event, a focusevent) is detected (step 710), then entry event and identificationinformation is communicated (step 715). Additional information, such as,for example, trait and/or contact information of the other individual isaccessed from an additional information source (e.g., a user profiledatabase) based on the identification information (step 720). Theadditional information may include, for example, client addressinginformation, email information, interest information, age or otherdemographic information, and/or a WhoIsHere preference such as aparticipation status. A corresponding online context is determined basedon the entry event information and context definition information (step725). The information related to the other individual is stored and/orassociated with a context record associated with the determined context(step 730). Monitoring of the online activity of the other individualscontinues (step 705).

If an exit event is detected (step 735) rather than an entry event (step710), then exit event and identification information is communicated(step 740). A corresponding online context is determined based on theexit event information and context definition information (step 745).The information related to the other individual is removed and/ordisassociated from the context record associated with the determinedcontext (step 750). Monitoring of the online activity of the other userscontinues (step 705).

Multiple back-end steps may be performed concurrently.

Referring to the front-end steps, an online context of a user 105 isdetermined based on online activity of the user 105 and contextdefinition information (step 760). The online context of the user ismonitored for change (step 765), and while the online context remainsunchanged, information indicative of other individuals presently withinthe online context is accessed (step 770). The user then is informed ofone or more of the other individuals based, for example, on preferenceor other trait information of the user and/or of the other individuals(step 775). To the extent that a change to the online context of theuser is detected (step 765), the new online context is determined andthe front-end steps are repeated. Multiple front-end steps may beperformed concurrently.

FIGS. 8-10 illustrate data flow diagrams showing processes that may beused to implement the system of FIG. 3.

FIG. 8 illustrates a process 800 that may be used to implement thesystem of FIG. 3 when the user opens a window, for example, to a webpage. Upon opening a window to a web page for the user, the clientcommunicates an “open window” message to the interface services (step805). The interface services communicate the “open window” message tothe context transaction services (step 810). Based on the “open window”message, the context transaction services issue a “query user info”message to the support services (step 815). The support services respondto the “query user info” message by passing a “user info” message to thecontext transaction services (step 820).

The context transaction services generate a “context entry” messagebased on the “open window” message and the “user info” message andcommunicate the “context entry” message to the context database servicesto indicate the presence of the user within the context (step 825). Thecontext transaction services also communicate a “query who is here”message to the context database services (step 830). The contextdatabase services generate a “list of users” message identifyingindividuals within the context in response to the “query who is here”message (step 835). The context database services communicate the “listof users” message to the context transaction services (step 835). Thecontext transaction services generate a “sorted list of users” messagebased on the “list of users” message and preferences of the user andcommunicates the “sorted list of users” message to the interfaceservices (step 840). The interface services communicate the “sorted listof users” message to the client for presentation to the user (step 845).

FIG. 9 illustrates a process 900 that may be used to implement thesystem of FIG. 3 when the user closes a window, for example, to a webpage. Upon closing a window to a web page for the user, the clientcommunicates a “close window” message to the interface services (step905). The interface services communicate the “close window” message tothe context transaction services (step 910). The context transactionservices communicate a “context exit” message to the context databaseservices based on the “close window” message (step 915).

In response, and to the extent that the user does not have open otherwindows within the context, the context database services remove theuser from the list of users within the context. The context transactionservices generate a “user list update” message (step 920). The “userlist update” message may indicate individuals present within anotheronline context of the user and may be based on information cached by thecontext transaction services, or upon information queried from thecontext database services as shown in FIG. 7. The context transactionservices communicate the “user list update” message to the interfaceservices (step 920). The interface services communicate the “user listupdate” message to the client for presentation to the user (step 925).

FIG. 10 illustrates a process 1000 that may be used to implement thesystem of FIG. 3 when the user alters a participation preference whilewithin an online context. When the user alters a participationpreference (e.g., by checking an Opt-In check-box), the clientcommunicates a “participation change” message to the interface services(step 1005). The interface services communicate the “participationchange” message to the context transaction services (step 1010).

In response, the context transaction services communicate an “updatecheck-box” message to the interface services (step 1015), whichcommunicates the “update check-box” message to the client (step 1020).The context transaction services communicate a “participation change”message to the support services so that the support services may updatestored preferences of the user (step 1025). The context transactionservices also communicate a “participation change” message to thecontext database services (step 1030). The context transaction servicesmodify trait information related to the user to reflect the changedparticipation status of the user.

Subsequently, the context transaction services communicate a “query whois here” message to the context database services (step 1035). Basedupon the changed participation status of the user, the context databaseservices generate a “user list” message based on the “query who is here”message. The context database services communicate the “user list”message to the context transaction services (step 1040). The contexttransaction services generate a “sorted list of users” message based onthe “list of users” message and preferences of the user and communicatesthe “sorted list of users” message to the interface service (step 1045).The interface services communicate the “sorted list of users” message tothe client for presentation to the user (step 1050).

FIG. 11 illustrates a system 1100 used to identify dynamically to anonline viewer of a television program other individuals viewing orotherwise tuning to the same television program. The system 1100includes a set-top box 1102 that receives television signals from atelevision source 1104. The set-top box 1102 includes a tuner 1106 usedto select a television channel for viewing. The selected televisionchannel may be received as an unencoded or encoded digital or analogsignal. For example, satellite television channels are typicallyreceived as a digital signal while most cable television channels arereceived as analog signals. The analog signals may be scrambled, and thedigital signals may be encrypted and/or compressed (e.g., using MPEG-2format). The set-top box 1102 includes an analog-to-digital converter1108 (A/D converter) that permits digital processing of the televisionimages regardless of the television source 1104. The A/D converter 1108may also be configured to decode and uncompress a scrambled or encryptedsignal.

The set-top box 1102 includes a network communication card 1110configured to enable the set-top box to communicate with a networkserver 1112. The network server 1112 is configured to provide theset-top box 1102 with access to a network 1117. The network server 1112may be, for example, an Internet Service Provider. The network 1117enables direct or indirect communication between the set-top box 1102and a user identification system 1120 through the network server 1112.The set-top box 1102 also includes a client service 1105 forcommunicating with the user identification system 1120 (the channelbetween the client service 1105 and the user identification system 1120is not shown) and constructing a display on a television or monitor1122. The client service 1105 may be, for example, a browser clientsoftware configured to communicate with the network server 1112 bysending HTTP (HyperText Transfer Protocol) messages.

The client service 1105 and the network 1117 are described broadly abovewith respect to FIG. 3, and the dynamic user identification system 1120is described broadly above with respect to FIGS. 1 and 3-5. Inparticular, the client service 1105, the network 1117 and the dynamicuser identification system 1120 typically have attributes comparable toand may illustrate one possible implementation of the client service305, the large scale network 317, and the dynamic user identificationsystems 120, 320, 420, and 520, respectively. The dynamic useridentification system 1120 may include interface services, supportservices, context transaction services, and context database servicessimilar to those described previously with respect to FIGS. 3-5.

The client service 1105 is configured to construct a display that mayinclude information received from the dynamic user identification system1120 and/or from the television source 1104. The client service 1105sends the constructed display to the television or monitor 1122 via anoutput port 1123. The client service 1105 is also configured to sendchannel selection data to the user identification system 1120 via thenetwork server 1112.

In one implementation, the client service 1105 integrates informationreceived from the user identification system 1120 and the televisioninformation by processing an HTML-like (Hypertext Manipulation Language)tag (e.g., <IMG SRC=“TV” x=0, y=0>) that instructs the client service1105 to place incoming television images on the screen at specificcoordinates. The user identification system 1120 may send information tothe set-top box 1102 as a web-page, and by modifying the receivedweb-page to include this tag, the client service 1105 may display thetelevision information received from the television source 1104 inconjunction with the information received from the user identificationsystem 1120. Alterations to the screen, such as adding user interfacecontrols or moving and/or resizing the television image also may beperformed by altering the instructions of a web-page displayed by theclient service 1105. The set-top box 1102 may store a default web-pagethat makes the received television signal a full-screen background image1124 with overlaid WhoIsWatching window 1130.

FIG. 12 illustrates an exemplary WhoIsWatching window 1200 that may beused by the system of FIG. 11 to identify one or more other viewers to aviewer of a program presented by the television or monitor 1122. TheWhoIsWatching window 1200 has attributes comparable to and mayillustrate one possible implementation of the WhoIsHere window 600 ofFIG. 6.

The window 1200 indicates a program (or channel or television network)1205 to which the television or monitor 1122 is currently tuned (e.g.,“Channel 52: Survivor”). The window 1200 provides a total count 1210 ofthe other viewers that are tuned to the program 1205 (e.g., “1542”). Thewindow 1200 also indicates the number 1215 of other viewers tuned to theprogram 1205 that are considered experts with respect to the program(e.g., “2”) and the number 1220 of other viewers tuned to the program1205 whose interests match a specified interest of the viewer (e.g.,“25”).

A presentation selector 1225 corresponds to the presentation selector625 of FIG. 6 and enables the viewer to select a preferred presentationof one or more of the other viewers (e.g., experts first, interestmatches first, or alphabetically). The display panel 1230 corresponds tothe display panel 630 and is used to show online identifiers of one ormore of the other viewers. Online identifiers included in the totalcount 1210 are displayed in the display panel 1230. A starburst symbolin the leftmost column may denote an online identifier belonging to anexpert viewer. Icons associated with each online identifier maycommunicate, for example, an identity, interest, or expertise of theother viewer. Highlighting a row or online identifier may indicatevisually an other viewer that has a matching interest with the viewer.

The WhoIsWatching window 1200 may enable the viewer to open an IM ore-mail that may be sent to an other viewer by, for example, selectingthe displayed identifier of that other viewer. The viewer also mayselect the displayed identifier and then select the Buddy Info button1235 to view buddy information of the other viewer corresponding to thedisplayed identifier. The WhoIsWatching window 1200 also includes acheckbox 1240 that enables the viewer to opt-in or opt-out ofWhoIsWatching. For example, by checking the checkbox 1240, the viewerhas opted into WhoIsWatching and is able to see other viewers and beseen by other viewers.

The WhoIsWatching window 1200 also may include a television controlpanel 1245 that enables the user to select a program, channel, ortelevision network to view. The television control panel 1245 mayinclude buttons 1250 that may be selected to progress sequentially tothe next or previous channel, program, or television network. Thetelevision control panel 1245 also may include one or more buttons 1255that may be selected to automatically tune into a predetermined program,channel, or television network. For example, the viewer may havepreviously programmed the set-top box 1102 to associate each of fivebuttons 1255 numbered one through five with a particular channel,program, or television network. An additional EPG button 1260 may beselected by the viewer to launch or otherwise enable the viewer toaccess an electronic program guide.

The buttons 1250, 1255, and 1260 may be implemented, for example, byusing tuning links similar to the ones disclosed in U.S. patentapplication Ser. No. 09/475,391, titled Television Chat Rooms, herebyincorporated by reference in its entirety. The viewer may select thebuttons 1250, 1255, and 1260 which represent links that may be processedto change the channel of the set-top box 1102. The links may, but neednot, refer to a specific channel. The set-top box 1102 may be programmedto determine a corresponding channel from a link that specifies aprogram or a television network.

When the viewer selects one of the buttons 1250 or 1255, or otherwiseinteracts with the television 1122 and/or set-top box 1102 in a mannerthat changes the channel, program, or television network, the clientservice 1105 is configured to send a TV select signal to the dynamicuser identification system 1120. The TV select signal enables thedynamic user identification system 1120 to update the context databaseservices to reflect the new context corresponding to the channel,program, or television network and to return a sorted list of users tothe client services 1105. The client services 1105 updates theWhoIsWatching window 1200 accordingly to reflect the new channel,program, or television network.

FIG. 13 illustrates a process 1300 that may be used to implement thesystem of FIG. 11 when the viewer tunes to a specific channel, program,or television network. Upon tuning to a particular channel, program, ortelevision network, the client services 1105 sends a “select program”message to the interface services (step 1305). The interface servicescommunicates the “select program” message to the context transactionservices (step 1310). Based on the “select program” message, the contexttransaction services may issue a “query viewer info” message to thesupport services (step 1315). The support services may respond to the“query viewer info” message by passing a “viewer info” message to thecontext transaction services (step 1320).

The context transaction services generate a “context entry” messagebased on the “select program” message and the “viewer info” message andcommunicate the “context entry” message to the context database servicesto indicate the presence of the user within the context (step 1325). Inthis case, the presence of the user within the context is the viewertuning to the selected program, channel, or television network. If theviewer was previously tuned to a different program, channel, ortelevision network, a “context exit” message is also generated and sentto the context database services to indicate that the viewer is nolonger tuned to that program (step 1330).

The context transaction services also communicates a “query who iswatching” message to the context database services (step 1335). Thecontext database services generate a “list of viewers” messageidentifying individuals that are tuned to the selected channel, program,or television network (step 1340). The context transaction servicesgenerate a “sorted list of viewers” message based on the “list ofviewers” message and preferences of the user and communicates the“sorted list of viewers” message to the interface services (step 1345).The interface services communicate the “sorted list of users” message tothe client for presentation to the user (step 1350).

Other implementations are within the scope of the following claims. Forexample, some or all of the functionality of the set-top box 1102 may beperformed by the television or monitor 1122 and/or the network server1112. The television or monitor 1122 may have the ability to tune tomultiple channels or programs. The set-top box 1102 may send multiplecorresponding “select program” messages to the user identificationsystem 1120. The user identification system 1120 may assign multiplecontexts to the same viewer, each context corresponding to one of themultiple channels or programs to which the television or monitor 1122 istuned.

The WhoIsWatching window 1200 also may include a graphicalrepresentation of the previous program, channel, or television networkviewed by each of the other viewers prior to tuning to the program 1205.For example, the display panel 1230 may include an icon representing theprevious program, channel, or television network next to the onlineidentifiers of each of the one or more other viewers. The WhoIsWatchingwindow 1200 also may include an interface element that enables theviewer to perceive a list of online identifiers corresponding to otherviewers that were previously tuned to the program 1205. The list may befiltered based on identity, interest, or expertise.

1. A method of informing a viewer of a video program of other viewersconcurrently viewing the video program, the method comprising:determining a first video program that a viewing device associated witha viewer is receiving; based on the determined receipt of the firstvideo program by the viewing device, identifying a group of otherviewers associated with viewing devices that are presently receiving thefirst video program; storing trait information for the viewer, the traitinformation including a contact list of the viewer; determining whethereach of the other viewers in the group of other viewers is a member ofthe contact list of the viewer; based on the determination of whethereach of the other viewers in the group of other viewers is a member ofthe contact list of the viewer, identifying a subgroup of the group ofthe other viewers as members of the contact list of the viewer which arepresently watching the first video program; causing presentation on theviewing device, to the viewer, of a first indicator that identifies atleast one viewer as a member of the subgroup of the other viewers whichare presently watching the first video program; identifying one or morerecent viewers associated with viewing devices that were previouslyreceiving the first video program and then were subsequently receiving asecond video program; determining whether each of the one or more recentviewers is a member of the contact list of the viewer; based on thedetermination of whether each of the one or more recent viewers is amember of the contact list of the viewer, identifying at least one ofthe one or more recent viewers as members of the contact list of theviewer which were previously receiving the first video program and thenwere subsequently receiving a second video program; and causingpresentation on the viewing device, to the viewer, of a second indicatorthat identifies at least one of the one or more recent viewers aspreviously receiving the first video program and then subsequentlyreceiving a second video program and identifies the second videoprogram.
 2. The method of claim 1 wherein determining a first videoprogram comprises determining a channel that the viewing deviceassociated with the viewer is receiving.
 3. The method of claim 1wherein determining a first video program comprises determining anetwork that the viewing device associated with the viewer is receiving.4. The method of claim 3 wherein determining a first video programcomprises inferring the first video program based on the network.
 5. Themethod of claim 1 wherein identifying a group of other viewersassociated with viewing devices that are presently receiving the firstvideo program comprises dynamically identifying a group of other viewersassociated with a viewing device that was previously receiving a secondvideo program and then was receiving the first video program.
 6. Themethod of claim 5 further comprising causing presentation of aperceivable indicator related to the second video program.
 7. The methodof claim 1, further comprising: storing trait information for each ofthe other viewers in the group of other viewers; and comparing thestored trait information for the viewer to the stored trait informationfor each of the other viewers in the group of other viewers, whereinidentifying the subgroup of the group of the other viewers comprisesidentifying, based on the comparison, the subgroup of the group of theother viewers as members of the contact list of the viewer that share afirst trait with the viewer.
 8. The method of claim 7 wherein the traitinformation comprises information related to an age of the viewer or ofthe other viewers.
 9. The method of claim 8 wherein identifying thesubgroup of the group of the other viewers comprises dynamicallyidentifying the subgroup of the group of the other viewers having an agesimilar to an age of the viewer.
 10. The method of claim 7 wherein thetrait information comprises information related to a demographicidentifier of the viewer or of the other viewers.
 11. The method ofclaim 10 wherein identifying the subgroup of the group of the otherviewers comprises identifying the subgroup of the group of the otherviewers having a similar demographic identifier.
 12. The method of claim7 wherein the trait information comprises information related to anexpertise rating of the viewer or of the other viewers.
 13. The methodof claim 7 wherein the trait information comprises information relatedto an interest of the viewer or of the other viewers.
 14. The method ofclaim 7 wherein the trait information comprises information related to aparticipation status of the viewer or of the other viewers.
 15. Themethod of claim 14 wherein the information related to the participationstatus comprises a visibility preference of the viewer or of the otherviewers.
 16. The method of claim 7 wherein the trait informationcomprises trait information of an individual selected as an associate bythe viewer or by the other viewers.
 17. The method of claim 7 whereinthe trait information comprises information related to an online statusof the viewer or of the other viewers.
 18. The method of claim 17wherein the online status comprises a status of active, idle, away,and/or mobile.
 19. The method of claim 7 wherein identifying thesubgroup of the group of the other viewers comprises identifying thesubgroup of the group of the other viewers based on a demographicidentifier of the other viewers.
 20. The method of claim 7 whereinidentifying the subgroup of the group of the other viewers comprisesidentifying the subgroup of the group of the other viewers based on asimilar age of the viewer and of the other viewers.
 21. The method ofclaim 1 further comprising: storing other information related to theviewer or to the other viewers, wherein causing presentation, to theviewer, of the first indicator comprises causing presentation, to theviewer, of the other information.
 22. The method of claim 21 wherein theother information comprises information indicative of an identificationof the viewer or of the other viewers.
 23. The method of claim 22wherein the information indicative of an identification comprises anonline identifier associated with the viewer or with the other viewers.24. The method of claim 22 wherein the other information comprisescontact information of the viewer or of the other viewers.
 25. Themethod of claim 21 wherein the other information comprises informationbased on an activity level associated with the first video program. 26.The method of claim 25 wherein the activity level corresponds to thenumber of viewers receiving the first video program.
 27. The method ofclaim 1 wherein causing presentation, to the viewer, of the firstindicator comprises causing presentation, to the viewer, of a totalnumber of the other viewers.
 28. The method of claim 1 wherein causingpresentation, to the viewer, of the first indicator comprises causingpresentation, to the viewer, of an identity of at least one of the otherviewers.
 29. The method of claim 1 further comprising causingpresentation, to the viewer, of a third indicator that identifies anexpertise of the at least one viewer.
 30. The method of claim 1 whereincausing presentation, to the viewer, of the first indicator comprisesproviding a user interface that graphically informs the viewer of the atleast one viewer as a member of the subgroup of other viewers.
 31. Themethod of claim 30 wherein the user interface may be manipulated by theviewer to communicate with at least one other viewer in the subgroup ofother viewers.
 32. The method of claim 31 wherein the user interface maybe manipulated by the viewer to invoke an instant message to at leastone other viewer in the subgroup of other viewers.
 33. The method ofclaim 31 wherein the user interface may be manipulated by the viewer tosend an email to at least one other viewer in the subgroup of otherviewers.
 34. The method of claim 31 wherein the user interface may bemanipulated by the viewer to contact directly at least one other viewerin the subgroup of other viewers using a voice communication.
 35. Themethod of claim 34 wherein the voice communication employs a mobiledevice.
 36. The method of claim 31 wherein the user interface may bemanipulated by the viewer to store contact information of at least oneother viewer in the subgroup of other viewers to the contact list of theviewer.
 37. The method of claim 1 wherein the contact list of the viewercomprises an instant messaging contact list of the viewer.
 38. Themethod of claim 1 wherein causing presentation, to the viewer, of thefirst indicator comprises sorting members of the subgroup according totrait information.
 39. The method of claim 38 wherein the traitinformation comprises preference information of the viewer.
 40. Themethod of claim 1 wherein the stored trait information for the viewercomprises information indicative of a location related to the viewer.41. The method of claim 1 wherein causing presentation, to the viewer,of the first indicator comprises updating presentation, to the viewer,of the first indicator on a viewer designated interval.
 42. The methodof claim 1 wherein causing presentation, to the viewer, of the firstindicator comprises updating presentation, to the viewer, of the firstindicator on a system designated interval.
 43. The method of claim 1further comprising: detecting dynamically the viewing device of theviewer receiving a third video program; identifying a group of thirdvideo program viewers associated with viewing devices that are receivingthe third video program; determining whether each of the third videoprogram viewers in the group of third video program viewers is a memberof the contact list of the viewer; based on the determination,identifying a subgroup of the group of third video program viewers asmembers of the contact list of the viewer; and causing presentation, tothe viewer, of an indicator that identifies at least one third videoprogram viewer as a member of the subgroup of the third video programviewers.
 44. A tangible computer-readable medium having embodied thereona computer program configured to inform a viewer of a video program ofother viewers concurrently viewing the same video program, the computerprogram comprising one or more code segments that, when executed, causea computer to: determine a first video program that a viewing deviceassociated with a viewer is receiving; based on the determined receiptof the first video program by the viewing device, identify a group ofother viewers associated with viewing devices that are presentlyreceiving the first video program; store trait information for theviewer, the trait information including a contact list of the viewer;determine whether each of the other viewers in the group of otherviewers is a member of the contact list of the viewer; based on thedetermination of whether each of the other viewers in the group of otherviewers is a member of the contact list of the viewer, identify asubgroup of the group of the other viewers as members of the contactlist of the viewer which are presently watching the first video program;cause presentation on the viewing device, to the viewer, of a firstindicator that identifies at least one viewer as a member of thesubgroup of the other viewers which are presently watching the firstvideo program identify one or more recent viewers associated withviewing devices that were previously receiving the first video programand then were subsequently receiving a second video program; determinewhether each of the one or more recent viewers is a member of thecontact list of the viewer; based on the determination of whether eachof the one or more recent viewers is a member of the contact list of theviewer, identify at least one of the one or more recent viewers asmembers of the contact list of the viewer which were previouslyreceiving the first video program and then were subsequently receiving asecond video program; and cause presentation on the viewing device, tothe viewer, of a second indicator that identifies at least one of theone or more recent viewers as previously receiving the first videoprogram and then subsequently receiving a second video program andidentifies the second video program.
 45. A system for informing a viewerof a video program of other viewers concurrently viewing the same videoprogram, the system comprising: a context determination serviceconfigured to determine a first video program that a viewing deviceassociated with a viewer is receiving; a first identification serviceconfigured to, based on the determined receipt of the first videoprogram by the viewing device, identify a group of other viewersassociated with viewing devices that are presently receiving the firstvideo program; a first information storage service configured to storetrait information for the viewer, the trait information including acontact list of the viewer; a determination service configured todetermine whether each of the other viewers in the group of otherviewers is a member of the contact list of the viewer; a secondidentification service configured to, based on the determination ofwhether each of the other viewers in the group of other viewers is amember of the contact list of the viewer, identify a subgroup of thegroup of the other viewers as members of the contact list of the viewerwhich are presently watching the first video program; a presentationservice configured to cause presentation on the viewing device, to theviewer, of a first indicator that identifies at least one viewer as amember of the subgroup of the other viewers which are presently watchingthe first video program a third identification service configured toidentify one or more recent viewers associated with viewing devices thatwere previously receiving the first video program and then weresubsequently receiving a second video program; a second determinationservice configured to determine whether each of the one or more recentviewers is a member of the contact list of the viewer; a fourthidentification service configured to, based on the determination ofwhether each of the one or more recent viewers is a member of thecontact list of the viewer, identify at least one of the one or morerecent viewers as members of the contact list of the viewer which werepreviously receiving the first video program and then were subsequentlyreceiving a second video program; and a second presentation serviceconfigured to cause presentation on the viewing device, to the viewer,of a second indicator that identifies at least one of the one or morerecent viewers as previously receiving the first video program and thensubsequently receiving a second video program and identifies the secondvideo program.